草庐IT

Android PlusOneButton 不初始化

全部标签

c++ - 内部类和初始化

我有一个这样定义的类:这还不完整,可能无法编译。classServer{public:Server();~Server();classWorker{public:Worker(Server&server):_server(server){}~Worker(){}voidRun(){}voidStop(){}private:Server&_server;}voidRun(){while(true){//dowork}}voidStop(){//HowdoIstopthethread?}private:std::vector_workers;};我的问题是,如何初始化传入名为Server的

c++ - 如何避免重复初始化 .mex(matlab 编译代码)?

我有调用从C++代码生成的MEX的Matlab代码。C++代码在初始化时需要大量的内存分配和计算。使用静态指针,初始化仅在第一次调用时完成,并在后续调用中读取指针。在使用MatlabCompiler编译此Matlab代码之前,一切正常。现在,对MEX的后续调用(现在发生在matlab编译代码中)最终会崩溃,因为静态指针显然引用了无效内存。在这种情况下如何避免重复初始化?谢谢,狮子座 最佳答案 好问题。您可能必须将其分解为两个不同的mex函数,一个计算初始化并返回其结果,另一个执行您的函数。[heavyCompResults,othe

c++ - 如何在编译时或代码初始化时自动更新数组中的条目?

嗯,我有一个从我的代码运行的抽象虚拟机(“PAWN”),脚本可以执行函数,这些函数从C代码注册到脚本,由我的C++代码执行。C++代码必须以的形式提供一个数组{"name_i_want_the_function_to_have_in_the_script",function_in_my_cpp_code}如果函数不在数组中,则无法执行。(因为它不“存在”)所以这让我们想到了这一点:我的函数是这样的://PawnFunctions#definePWNFUNC(a)staticcellAMX_NATIVE_CALLa(AMX*amx,cell*params)namespacePawnFun

c++ - 我可以使用聚合初始值设定项来返回 C++ 中的结构吗?

我有一个函数返回一个由两个整数组成的命名结构,如下所示:structmyStruct{inti;intj;};myStructmyFunction(intmyArg){switch(myArg){case0:return{1,2};case1:return{2,3};default:return{4,5};}}我希望能够从我的switch语句中返回适当初始化的结构。我可以通过声明一个命名结构并初始化它,然后返回命名结构来做到这一点,但是如果我能让编译器像我上面的例子那样为我创建匿名结构会更干净——它不会编译。这可以(合法地)工作吗?或者实现我的目标最简洁的方法是什么?

c++ - 引用元组初始化引用元组

如果我有代码#includeusingVec3=std::tuple;usingVec3Ref=std::tuple;voidstuff(){Vec3foo(0,0,0);Vec3Refbar(foo);}我得到了错误/usr/include/c++/4.6/tuple:100:4:error:bindingofreferencetotype'float'toavalueoftype'constfloat'dropsqualifiers:_M_head_impl(std::forward(__h)){}^~~~~~~~~~~~~~~~~~~~~~~~~~//snip.../usr/in

【C++】类与对象(四)——初始化列表|explicit关键字|static成员|友元|匿名对象

前言:初始化列表,explicit关键字,static成员,友元,匿名对象文章目录一、构造函数的初始化列表1.1构造函数体内赋值1.2初始化列表二、explicit关键字三、static成员四、友元4.1友元函数4.2友元类五、内部类六、匿名对象一、构造函数的初始化列表1.1构造函数体内赋值classDate{public: Date(intyear,intmonth,intday){ //赋值,并非初始化 _year=year; _month=month; _day=day; }private: int_year; int_month; int_day;};构造函数调用之后,在函数体

c++ - 变量的静态初始化失败

我无意中遇到了一个问题。我正在从事的项目突然停止工作。我正在使用Xcode5.1.1(LLVM3.4,clang5.1)。问题是大多数静态变量在启动时不再初始化。我没有更改任何可能导致此问题的内容,但我很想知道可能导致此问题的原因以及可能的解决方法。我说的是简单的情况,例如://File.hclassMyClass{staticstd::vectordata;}//File.cppstd::vectorMyClass::data;通过运行程序,我在尝试向vector添加元素时遇到长度异常,意识到它的大小只是一个垃圾值。这发生在其他文件中的其他静态字段上,没有明显的原因。代码本身不用作库

c++ - 有没有办法仅在实例化特定类模板(特化)时调用初始化函数?

我正在为各种计算功能设计一个包装器。一些底层后端需要在进行任何其他API调用之前调用一些init函数。我可以使用一些在main之前初始化的静态变量,并将其包装在某个函数中,如here所述这样我就可以捕获初始化期间产生的任何错误。我想知道是否有更好的方法来处理这个问题。请注意,永远不会有类模板的实例,因为一切都是typedef或静态成员。 最佳答案 为了解决初始化API仅为某些特化的问题,并且只初始化一次,我会做这样的事情:#includetemplatestructWrapper{//classwhowillbestatically

c++ - 在 C++ 中初始化模板时将函数传递给模板对象

我正在尝试为HashMap编写一个实现,除了iostream、string和cassert之外,我不允许使用stdlib中的任何内容。它需要是通用的,因此填充桶的值可以是任何类型。我为此需要模板,但无法设法以任何方式传递哈希函数。这将是头文件:templateclasshashTable{public:hashTable(intsize){//Createsanemptyvectorofsizeonthetable}define(Valuev){loadsvalueinVector[hashFunction(v)];}...private:Vectorwithalltheelement

c++ - 类 C++ 初始化顺序的静态函数成员中的静态数据成员

我有一个宏,用于将键、值添加到注册表映射。(假设AddToMap位于在其他地方定义的全局静态对象上。)在定义不同的类(某种类的注册表)之后,在代码的不同位置调用AddKey宏。代码分成很多.h和.cc文件,依赖关系复杂。我有以下有效的代码:#defineAddKey(key,val)\namespaceNSP_##key{\classA{\public:\staticboolfoo(){\staticbooldummy=AddToMap(#key,#val);\}\};\staticbooldummy_A=A::foo();\}`我想知道静态变量dummy是如何创建和初始化的。当我使用